package com.sunchen.asc.service.item.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

@Data
@ApiModel(value="事项扩展对象",description="事项扩展itemInfo")
public class ItemInfoVo implements Serializable {

    private Long id;

    @ApiModelProperty(value="绑定事项",name="itemId")
    @NotNull(message = "不能为空")
    private Long itemId;

    @ApiModelProperty(value="基本编码",name="baseCode")
    @NotEmpty(message = "不能为空")
    private String baseCode;

    @ApiModelProperty(value="业务办理项编号",name="businessCode")
    @NotEmpty(message = "不能为空")
    private String businessCode;

    @ApiModelProperty("实施主体")
    private String deptName;
    @ApiModelProperty("办理时间")
    private String workTime;
    @ApiModelProperty("办理地点")
    private String workPlace;
    @ApiModelProperty("权力来源")
    private String powerSource;
    @ApiModelProperty("网上支付")
    private String onlinePay;
    @ApiModelProperty("所属机构")
    private String orgName;
    @ApiModelProperty("委托部门")
    private String orgDecide;
    @ApiModelProperty("联办机构")
    private String orgJoint;
    @ApiModelProperty("实施主体性质")
    private String orgProperty;
    @ApiModelProperty("进驻大厅类型")
    private String typeInHall;
    @ApiModelProperty("办理进程查询途径")
    private String processTel;
    @ApiModelProperty("行使层级")
    private String authLevel;
    @ApiModelProperty("运行系统")
    private String runSystem;
    @ApiModelProperty("物流快递")
    private String delivery;
    @ApiModelProperty("办理方式")
    private String handleType;
    @ApiModelProperty("预约办理")
    private String isReserve;
    @ApiModelProperty("办理形式")
    private String handleForm;
    @ApiModelProperty("中介服务")
    private String zj;
    @ApiModelProperty("数量限制")
    private String limitNumber;
    @ApiModelProperty("通办范围")
    private String crossScope;
    @ApiModelProperty("行使内容")
    private String exerciseContent;
    @ApiModelProperty("权限划分")
    private String authorityDivision;
    @ApiModelProperty("特别程序")
    private String procedure;
    @ApiModelProperty("必须现场办理原因说明")
    private String reason;
    @ApiModelProperty("受理条件")
    private String applyCondition;


    @ApiModelProperty("办件类型")
    private String agreeType;
    @ApiModelProperty("到现场次数")
    private String applyTimes;
    @ApiModelProperty("法定办结时间")
    private String lawTime;
    @ApiModelProperty("承诺办结时间")
    private String agreeTime;
    @ApiModelProperty("承诺办结时限说明")
    private String agreeTimeReason;


    @ApiModelProperty("咨询电话")
    private String advisoryPhone;
    @ApiModelProperty("咨询地址")
    private String advisoryAddress;

    @ApiModelProperty("投诉监督电话")
    private String complainPhone;
    @ApiModelProperty("投诉监督地址")
    private String complainAddress;
    @ApiModelProperty("常见问题")
    private String problem;
    @ApiModelProperty("服务评价")
    private String assess;

    public ItemInfoVo() {
    }

    public ItemInfoVo(Long id, Long itemId, String baseCode, String businessCode, String deptName, String workTime, String workPlace, String powerSource, String onlinePay, String orgName, String orgDecide, String orgJoint, String orgProperty, String typeInHall, String processTel, String authLevel, String runSystem, String delivery, String handleType, String isReserve, String handleForm, String zj, String limitNumber, String crossScope, String exerciseContent, String authorityDivision, String procedure, String reason, String applyCondition, String agreeType, String applyTimes, String lawTime, String agreeTime, String agreeTimeReason, String advisoryPhone, String advisoryAddress, String complainPhone, String complainAddress, String problem, String assess) {
        this.id = id;
        this.itemId = itemId;
        this.baseCode = baseCode;
        this.businessCode = businessCode;
        this.deptName = deptName;
        this.workTime = workTime;
        this.workPlace = workPlace;
        this.powerSource = powerSource;
        this.onlinePay = onlinePay;
        this.orgName = orgName;
        this.orgDecide = orgDecide;
        this.orgJoint = orgJoint;
        this.orgProperty = orgProperty;
        this.typeInHall = typeInHall;
        this.processTel = processTel;
        this.authLevel = authLevel;
        this.runSystem = runSystem;
        this.delivery = delivery;
        this.handleType = handleType;
        this.isReserve = isReserve;
        this.handleForm = handleForm;
        this.zj = zj;
        this.limitNumber = limitNumber;
        this.crossScope = crossScope;
        this.exerciseContent = exerciseContent;
        this.authorityDivision = authorityDivision;
        this.procedure = procedure;
        this.reason = reason;
        this.applyCondition = applyCondition;
        this.agreeType = agreeType;
        this.applyTimes = applyTimes;
        this.lawTime = lawTime;
        this.agreeTime = agreeTime;
        this.agreeTimeReason = agreeTimeReason;
        this.advisoryPhone = advisoryPhone;
        this.advisoryAddress = advisoryAddress;
        this.complainPhone = complainPhone;
        this.complainAddress = complainAddress;
        this.problem = problem;
        this.assess = assess;
    }
}
